iT邦幫忙

2026 iThome 鐵人賽

DAY 7
0
自我挑戰組

滲透測試新手的 HTB Academy 30天學習日記系列 第 7 篇

Day 7 網頁枚舉與工具介紹 - Gobuster

  • 分享至 

  • xImage
  •  

今天算是延續昨天的結果來繼續做更進一步的資料蒐集,當我們利用 Nmap 做完服務掃描後,如果我們掃描的目標是網頁伺服器的話,很常會看到這兩個 Port,分別是 80/443 Port ( 有時會同時看到有時只會有單獨一個 ),分別代表 HTTP/HTTPS,這個在前面講到 Web Server 的時候有稍微提到過,而當今天我們是要對網頁做滲透測試時,通常會先對網頁做網頁枚舉。

什麼是網頁枚舉 ?

跟昨天提到網路枚舉算是類似的行為 ( 情資蒐集 ) 只是針對的列舉的事物不太一樣,今天的網頁枚舉 ( Web Enumeration ) 是針對網頁的資訊,例如 : 子網域有哪些 . 網頁的目錄/檔案 ...等,這邊就先來介紹子網域枚舉跟網頁目錄與文件枚舉。

Gobuster

Gobuster 是一個以字典檔來進行暴力枚舉的工具,有幾大類的枚舉模式,分別為下面五類。

  • ==目錄與檔案枚舉(dir 模式)==
  • ==DNS 子網域爆破(dns 模式)==
  • 虛擬主機探測(vhost 模式)
  • 雲端儲存空間枚舉(s3 / gcs 模式)
  • TFTP 伺服器枚舉(tftp 模式)
    這邊我們就只介紹 目錄與檔案枚舉 跟 DNS 子網域爆破。

目錄/檔案枚舉

從字面上的意思就是列舉出網頁伺服器上有哪些目錄以及檔案。
通常我們在瀏覽網頁的時候我們注意看網址列的地方可以發現有些網頁會寫上該網頁檔案的名字,我下面用巴哈動漫瘋的網址來做說明。

https://ani.gamer.com.tw/mygather.php

我們可以看到這個網頁檔是叫做 mygather.php 的檔案,而這也代表巴哈動漫瘋的網頁伺服器裡面有這個檔案。

有看得到的檔案那反過來講是不是也有我們看不到的檔案,這時就輪到 Gobuster 的目錄與檔案枚舉的出場啦,我們可以來使用 Gobuster 來暴力枚舉網頁的目錄及檔案,有機會可以發現一些藏著攻擊線索的檔案。

基本用法

gobuster dir -u [網址] -w [字典檔] 
  • 網址 : 要做枚舉的目標網頁的 IP 或者是網址,網址的話使用主頁的網址。使用 IP 的話要加上 http:///https:// 的前綴
  • 字典檔 : 要選用做來爆破的文字檔,裡面包含了很多常用的字詞,Gobuster 會針對這些詞一個一個做測試

由於這個實作需要有一個有提供網頁服務的目標我這邊就用我之前做過的 HTB LAB 的一題來介紹用法。

示範實作 ( Lab Crocodile )

gobuster dir -u http://10.129.134.99 -w /usr/share/dirb/wordlists/common.txt       
===============================================================
Gobuster v3.8.2
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://10.129.134.99
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/dirb/wordlists/common.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.8.2
[+] Timeout:                 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
.htaccess            (Status: 403) [Size: 278]
.hta                 (Status: 403) [Size: 278]
.htpasswd            (Status: 403) [Size: 278]
assets               (Status: 301) [Size: 315] [--> http://10.129.134.99/assets/]
css                  (Status: 301) [Size: 312] [--> http://10.129.134.99/css/]
dashboard            (Status: 301) [Size: 318] [--> http://10.129.134.99/dashboard/]
fonts                (Status: 301) [Size: 314] [--> http://10.129.134.99/fonts/]
index.html           (Status: 200) [Size: 58565]
js                   (Status: 301) [Size: 311] [--> http://10.129.134.99/js/]
server-status        (Status: 403) [Size: 278]
Progress: 4613 / 4613 (100.00%)
===============================================================
Finished
===============================================================

這邊分成兩個部分來做解釋

  1. 枚舉設定
[+] Url:                     http://10.129.134.99
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/dirb/wordlists/common.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.8.2
[+] Timeout:                 10s
  • Url : 目標網址
  • Method : 發送 HTTP 請求時所使用的 Request 方法 ( 預設是用 GET )。
  • Threads : 枚舉使用的執行緒,越多枚舉的速度越快反之越慢,被發現的機率則是反比,越多越容易被發現 ( 預設使用10個執行緒 )。
  • Wordlist : 使用的字典檔,這邊使用的字典檔是 dirb 這個工具提供的字典檔。 ( dirb 也是用來做目錄/檔案枚舉的工具 )。
  • Negative Status codes : 不顯示狀態碼為 404 的檔案。
  • User Agent : 發送 HTTP 請求時在封包 Header 帶入的客戶端身分識別字串。
  • Timeout : 單一 HTTP 請求的最長等待時間 ( 預設為10秒 )。
  1. 枚舉結果
    以狀態碼分別介紹 :
  • 200 : 可以正常存取
  • 301 : 確實存在的目錄
  • 403 : 被拒絕存取的檔案

通過這些資訊我們就可以來思考下一步可以怎麼做,可以進去這些目錄看看也可以進去可以存取的網頁看看,諸如此類,若是伺服器配置有問題的話或許能夠找到一些神奇的東西也說不定。

子網域枚舉

什麼是子網域 ?
直接用範例來做說明
這邊有一個頂級域名 example.com
calendar.example.com 與 mail.example.com 就是 example.com 的子網域

為什麼要做子網域枚舉 ?
若在主網域下沒找到什麼攻擊的線索可以在子網域尋找一些攻擊的方向就是擴大攻擊方向,或許子網域的防護會比較薄弱。

基本用法

gobuster dir -d [網址] -w [字典檔] 
  • 網址 : 子網域只能使用網址 ( 域名 ) 來當目標。
  • 字典檔 : 要選用做來爆破的文字檔,裡面包含了很多常用的字詞,Gobuster 會針對這些詞一個一個做測試。

這次沒找到實作的資源,等我有碰到相關的資源再來補上 ; ;

總結

這次提到 gobuster 的兩個枚舉模式,對於 web 滲透測試來說是很重要的一個步驟,若沒有先蒐集這些資訊,會很難有方向要往哪邊做進一步的嘗試,這次我也是第一次研究才發現原來可以透過這兩個方法去挖出這麼多的資訊,學會使用也可以對 HTTP 的協定有進一步的認識。

參考資料來源

延伸閱讀


上一篇
Day 6 Nmap 網路枚舉工具介紹與簡單實作
下一篇
Day 8 公開漏洞利用 Exploit
系列文
滲透測試新手的 HTB Academy 30天學習日記 共 15 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言